Apparatus, method, and program for executing protocol converting process

ABSTRACT

When a device searches a network, there is a case where the device is recognized as different devices as one searched by a protocol A and the other searched by a protocol B. In a proxy server  9300  for executing a protocol converting process in a network system, whether or not another protocol converting apparatus for executing a predetermined protocol converting process does not exist on the network is searched. When another protocol converting apparatus is searched on the network, whether or not the searched protocol converting apparatus has executed the protocol converting process is discriminated.

TECHNICAL FIELD

The invention relates to a network device and a server apparatus forexecuting a communicating process in accordance with a predeterminedprotocol, a system including them, a method, a control program, and thelike.

BACKGROUND ART

Hitherto, a service providing apparatus and a service providing systemfor rendering services in response to a service request from a clientapparatus on a network have been known.

For example, in association with the remarkable spread of communicationby the Internet, network supported apparatuses have rapidly beenprogressed so that not only conventional personal computers but alsouser interactive devices such as PDA (Personal Digital Assistance),cellular phone, and the like, image processing apparatuses such asscanner, printer, copying apparatus, digital camera, and the like, andhousehold appliances such as television, air-conditioner, refrigerator,and the like are made to communicate over the network.

In association with such a progress, in order to improve ease of use andsimplicity upon using those network supported devices, there have beenproposed various protocols for providing automatic setting means of anetwork address, discovering means of the network device, and automaticsetup means of application software for controlling the networksupported devices, utility software, operating system, and the like. Forexample, there are protocols such as “Universal Plug and Play” whosestandardization is being progressed mainly by Microsoft Corporation,“BMLinkS” which is progressed by Japan Business Machine MakersIndustrial Association (JBMIA), “Renedzvous” which is supported by“Apple OSX”, and the like.

While the ease of use and simplicity are improved as a result of theproposition of those protocols, it also caused such a necessity that thenetwork devices correspond to those plurality of protocols. Although theplurality of protocols can be implemented in devices such as high-endcopying machine, printer, and the like having large-scaled hardware anda large amount of software-resources, with respect to other devices,each protocol has to be implemented in accordance with a useapplication, so that it becomes a factor of an increase in developmentcosts. The devices which have already been put into the market and arein an operating state on the network cannot correspond to suchprotocols.

As means for solving such a problem, a method of making a device calleda Proxy or Bridge operative on the network and allowing it to execute aproxy process for the protocol correspondence is ordinarily used.

According to such a conventional technique, however, when a protocolconverting process is intended to be executed, for example, if onecertain device corresponding to a plurality of protocols A and B existsamong other devices, when the device searches the network, the device isrecognized as different devices as one searched by the protocol A andthe other searched by the protocol B.

When the device executes' the search by a predetermined protocol, itreceives a response through a proxy server (protocol converting server).At this time, there is such a problem that when a plurality of protocolconverting servers are activated, if one device responds to a searchingrequest, such a response is converted by a plurality of proxy serversfor executing the protocol conversion, respectively, and the responsefrom the searched device is made from each proxy server a plurality oftimes. Consequently, when the search is made, if a plurality of proxyservers exist, it seems as if a plurality of devices existed.

DISCLOSURE OF INVENTION

The invention is made to solve at least one of the foregoing problemsand the following means is disclosed.

There is disclosed a control apparatus for executing a protocolconverting process in a network system in which a plurality of kinds ofprotocols exist mixedly, comprising: searching means for multicasting asearching request to a network and searching upon activation whether ornot another protocol converting apparatus for executing a predeterminedprotocol exists on the network; recognizing means for, when such anotherprotocol converting apparatus is searched on the network by thesearching means, recognizing whether the searched protocol convertingapparatus can execute the protocol converting process or has executedit; and activating means for, when it is recognized by the recognizingmeans that the searched protocol converting apparatus cannot execute theprotocol converting process or does not execute it, activating theprotocol converting process. A method and a control program which areapplied to such a control apparatus are also disclosed.

There is disclosed a control apparatus for making a protocol convertingcontrol with respect to devices, as targets, using a plurality ofprotocols, comprising: searching means for searching for the deviceusing a first protocol; converting means for converting a secondprotocol so as to make the device communicate in accordance with thefirst protocol; recognizing means for recognizing whether or not thedevice searched by the searching means corresponds to the firstprotocol; and control means for controlling the converting means so asnot to execute the protocol conversion into the first protocol withrespect to the device recognized by the recognizing means that thedevice searched by the searching means corresponds to the firstprotocol. A method and a control program which can be applied to such acontrol apparatus are also disclosed.

Other features and advantages of the present invention will be apparentfrom the following description taken in conjunction with theaccompanying drawings, in which like reference characters designate thesame or similar parts throughout the figures thereof.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram showing each functional construction of a client, aproxy server, and network corresponding printers which construct aprotocol conversion system according to an embodiment of the invention.

FIG. 2 is a whole flowchart showing a protocol conversion processingmethod of the protocol conversion system in the invention.

FIG. 3 is a flowchart showing a process for searching for a UPnPcompliant printer in the protocol conversion processing method of theprotocol conversion system in the invention.

FIG. 4 is a diagram showing a format of an M-SEARCH discovery packetwhich is specified by “Universal Plug and Play Device Architecture v1”.

FIG. 5 is a diagram showing a response packet format for the M-SEARCHdiscovery packet which is specified by “Universal Plug and Play DeviceArchitecture v1”.

FIG. 6 is a flowchart showing a printer information obtaining process inthe protocol conversion processing method of the protocol conversionsystem in the invention.

FIG. 7 is a diagram showing a format of a management table.

FIG. 8 is a flowchart showing a process for a protocol convertingprocess in the protocol conversion processing method of the protocolconversion system in the invention.

FIG. 9 is a diagram showing each functional construction of the client,proxy server, and network corresponding printer which construct aprotocol conversion system according to an embodiment of the invention.

FIG. 10 is composed of FIGS. 10A and 10B showing flowcharts of theprotocol conversion processing method of the protocol conversion systemin the invention.

FIG. 11 is composed of FIGS. 11A and 11B showing flowcharts of theprinter information obtaining process in the protocol conversionprocessing method of the protocol conversion system in the invention.

FIG. 12 is composed of FIGS. 12A and 12B showing flowcharts of theprotocol converting process in the protocol conversion processing methodof the protocol conversion system in the invention.

FIG. 13 is a flowchart showing a process for a Notify packet process inthe protocol conversion processing method of the protocol conversionsystem in the invention.

FIG. 14 is a diagram showing a packet format of Notify status=WakeUp.

FIG. 15 is a diagram showing a packet format of Notify response packetstatus=FULL.

FIG. 16 is a diagram showing each functional construction of the client,proxy server, and network supported printer which construct a protocolconversion system according to an embodiment of the invention.

FIG. 17 is a whole flowchart showing the protocol conversion processingmethod of the protocol conversion system in the invention.

FIG. 18 is a flowchart showing a process for obtaining a UPnP compliantprinter information in the protocol conversion processing method of theprotocol conversion system in the invention.

FIG. 19 is a diagram showing a format of a management table.

FIG. 20 is composed of FIGS. 20A and 20B showing flowcharts of theprocess for the protocol converting process in the protocol conversionprocessing method of the protocol conversion system in the invention.

FIG. 21 shows a presentation document which is formed by a protocolconverting apparatus in the invention.

FIG. 22 shows a presentation document which is formed by the protocolconverting apparatus in the invention.

FIG. 23 is a diagram showing a packet format of Notify response packetstatus=WORKING.

FIG. 24 is a diagram showing a packet format of Notify status FULL.

FIG. 25 is a diagram showing a format of a management table.

FIG. 26 is a diagram showing a packet format of Notify status=ByeBye.

BEST MODE FOR CARRYING OUT THE INVENTION

In the state where (x) devices which support the protocol A and (y)devices which support both of the protocol A and the protocol B areoperating on a network (both x and y are integers of 1 or more), in thecase where a proxy for converting the protocol A into the protocol B isactivated, the proxy executes a conversion into the protocol B by usingthe protocol A with respect to the devices which support both of theprotocol A and the protocol B. Therefore, due to the intervention of theproxy, there is a possibility that a process is executed to the networkclient using the protocol B as if (x+2y) devices corresponding to theprotocol B were operating, that is, the devices twice as many as theactual number of devices were operating on the network in spite of theidentity of the devices which support both of the protocol A and theprotocol B. There is such a problem that the intervention of the proxycan become a factor of causing confusion to the user who uses thedevice.

A preferred embodiment of the invention will now be described asexamples in detail hereinbelow with reference to the drawings.Protocols, versions, addresses, numerical values, and the like disclosedin the embodiment do not limit the scope of the invention unlessotherwise specified.

A protocol conversion system as an embodiment of a service providingsystem according to the invention will now be described. FIG. 1 is ablock diagram showing a construction of a print system according to theembodiment of the invention.

A general operating system such as “Windows™” of Microsoft Corporation,MacOS of Apple Computer Inc., or the like and general applications whichcan be executed on the operating system have been installed in a client100. In the case of a “Windows™” OS 1 shown in the embodiment,discovery, control, obtainment of statuses, and the like of the deviceson the network are realized by using a “Universal Plug and Play (UPnP)”protocol 2 using “eXtensible Markup Language (XML)”/“Simple ObjectAccess Protocol (SOAP)”. After a document formed by, for example, a wordprocessor 4 as application software is converted into printable data bya printer driver 3, a print job is issued by using the UPnP protocol 2to a UPnP protocol corresponding printer searched and found by the UPnPprotocol 2.

A network corresponding device, in the embodiment, a network supportedprinter 200 has a TCP/UDP/IP protocol stack 5 as a communicatingfunction. A Simple Network Management Protocol (SNMP) processing unit 6is provided on the protocol stack. A print protocol processing unit 7 ismounted on the protocol stack 5 and has functions for analyzing a printrequest which is issued by the client and sending the print request to aprinter controller 8.

The printer does not have the UPnP protocol processing unit and cannotsolely respond to a device searching request using the UPnP protocol anda UPnP print job request which are issued by the client 100.

Another network supported device, in the embodiment, a network supportedprinter 400 has a TCP/UDP/IP protocol stack 17 as a communicatingfunction. An HTTP 19 is provided on this protocol stack and an analysisof an HTTP request and a response process are executed.

In a manner similar to the network printer 200, a Simple NetworkManagement Protocol (SNMP) processing unit 18 is provided on theprotocol stack 17.

A Simple Object Access Protocol (SOAP) processing unit 20 is providedfor an upper layer of the HTTP 19 and a UPnP protocol processing unit 21is also provided. A Print Basic service specified in UPnP Forum has beenimplemented in the network supported printer 400. The UPnP protocolprocessing unit has functions for analyzing print jobs and attributeinformation defined by such a service and sending the print request to aprinter controller 22.

A proxy server 300 also similarly has a TCP/UDP/IP protocol stack 9 as acommunicating function. An HTTP 10 is provided on this protocol stackand an analysis of an HTTP request and a response process are executed.

A Simple Network Management Protocol (SNMP) processing unit 11 isprovided on the protocol stack 9. The search of the network supportedprinter 200 which does not have the UPnP protocol processing unit andobtainment of information are executed by this protocol.

A print protocol processing unit 12 is mounted on the protocol stack 9and issuance of a print job to the network supported printer 200 whichdoes not have the UPnP protocol processing unit is executed in the printprotocol processing unit 12.

A Simple Object Access Protocol (SOAP) processing unit 13 is provided inan upper layer of the HTTP 10. A UPnP protocol processing unit 14 and aprotocol conversion processing unit 16 realize bidirectionalcommunication of data described by “eXtensible Markup Language (XML)”through the SOAP processing unit 13, respectively, with the client 100and another proxy server, if any exists on the network.

The protocol conversion processing unit 16 is located in an upper layerof the SNMP processing unit 11, SOAP processing unit 13, UPnP processingunit 14, print protocol processing unit 12, and a recording apparatuscontrol unit 15 and executes the following processes. That is, aftervarious XML documents which are used in the UPnP protocol are formed,information of the network supported printer obtained through the SNMPprocessing unit 11 is recorded into a recording apparatus which iscontrolled by the recording apparatus control unit 15 or, when there isa request from the UPnP protocol, an XML document recorded in thecorresponding management table is read out through the recordingapparatus control unit 15 and transmitted to the UPnP protocolprocessing unit 14, and the like.

When the request for the print job by the UPnP protocol is received, theprotocol conversion processing unit 16 obtains a job command and jobattribute information through the SOAP processing unit 13, convertstheir contents into a print protocol supported by the printer whoseoutput has been designated, and thereafter, transmits the job to thedesignated printer through the print protocol processing unit 12.

The protocol conversion processing unit 16 executes processes forwriting and reading out the management table which is managed by theproxy server 300 into/from the recording apparatus which is controlledby the recording apparatus control unit 15 through the control unit 15.Similarly, when the protocol conversion processing unit 16 obtains amanagement table which is managed by another proxy server existing onthe network, it executes processes for writing and reading out itinto/from the recording apparatus which is controlled by the recordingapparatus control unit 15 through the control unit 15.

A flow of the control of the present system will now be describedhereinbelow in accordance with a flowchart of FIG. 2.

After the protocol conversion processing unit 16 in the proxy server 300is activated, it clears through the recording apparatus control unit 15the contents in the management table in which the information of thenetwork device which has executed the protocol converting process isrecorded (step 2-1). Details of the management table will be explainedin the following processes.

Subsequently, when the client participates in the network and startsservices, the UPnP compliant printer existing on this network issearched (step 2-2). Step 2-2 will now be described in detailhereinbelow with reference to FIG. 3. As shown in step 3-1 in aflowchart shown in FIG. 3, an HTTPM-SEARCH packet in a format shown inFIG. 4 and specified in “Universal Plug and Play Device Architecturev1.0” is issued to a multicast address 239.255.255.250 and a port number1900.

After the M-SEARCH packet is issued, if there is a response within aprescribed predetermined time, for example, in the embodiment, within 30seconds, the protocol conversion processing unit 16 in the proxy server300 executes an analysis of a response packet in response to all of theresponses.

FIG. 5 shows a format of the response packet from the printer as anexample of the network devices. The protocol conversion processing unit16 in the proxy server 300 records a URL of the network printerdisclosed in the packet into the recording apparatus which is controlledby the recording apparatus control unit 15 through the control unit 15.This process is executed to all of the received response packets and theproxy server 300 records URL of all UPnP compliant printers existing onthe network (step 3-2).

After completion of the above process or when there is no response instep 3-3, the protocol conversion processing unit 16 in the proxy server300 finishes the UPnP searching process, advances to step 2-3, andstarts to obtain the printer information.

“123.123.123.123” is disclosed as a URL in FIG. 5. The URL is apreferred example of identification information of the network device.ST denotes a service type.

A flowchart of FIG. 6 shows a flow for the control of, the obtainment ofthe printer information. The protocol conversion processing unit 16 inthe proxy server 300 broadcasts an SNMP Get request to the following MIBobject from the SNMP processing unit 11 in order to obtain the printerinformation of the printers existing on the network (step 6-1).

-   -   PrinterMakerAndModel: Printer vender/model name    -   PrinterName: Printer name

PrinterLocation: Printer setting location

-   -   IPAddress: Printer IP address    -   MACAddress: Printer MAC address    -   SupportedPDL: Page description language which is supported    -   SupportedPrintProtocol: Print protocol which is supported

The network supported printers 200 and 400 which received the SNMP Getrequest form information corresponding to each object in the SNMPprocessing unit 6 and, thereafter, transmit a response as an SNMPresponse to the proxy server 300 in a unicast manner.

Whether the response has been received or not is discriminated inS6-1-1. If it is determined in S6-1-1 that the response has beenreceived, S6-2 follows. If it is determined that there is no response,S6-9 follows. The protocol conversion processing unit 16 in the proxyserver 300 which received the response from each network supportedprinter compares contents of each response with contents in themanagement table which has already been registered in the recordingapparatus (step 6-2), thereby discriminating whether or not the printeris a printer which has already executed the protocol conversion (step6-3).

If it is determined in S6-3 that the printer is a printer which does notexecute the protocol conversion, that is, a printer which has newly beenfound, the protocol conversion processing unit 16 in the proxy server300 subsequently discriminates whether the printer is a UPnP compliantprinter, that is, a printer corresponding to SSDP or not by comparingthe URL with a URL of the UPnP compliant printer which has already beenrecorded in the recording apparatus (step 6-4). An SSDP (Simple ServiceDiscover Protocol) is used for finding the devices connected onto thenetwork and obtaining the functions. The SSDP is a basic portion forconstructing UPnP and the standard specifications have been issued fromIETF.

In a manner similar to that in the name solution, the IP broadcast isused for finding the devices. When an inquiry is transmitted in thebroadcast manner, each device which meets the conditions autonomouslytransmits an IP address and a host name to an inquiring source side.Information that is unique to the apparatus such as information showingwhich functions the apparatus has specifically is also exchanged at thistime.

In this case, when the printer IP address obtained as a response to theSNMP Get request coincides with the URL recorded in the recordingapparatus (step 6-4), it is determined that the printer newly found isthe UPnP compliant printer. The protocol conversion is not executed tothis printer.

If it is determined that the printer is not the UPnP compliant printerin step 6-4, the protocol conversion processing unit 16 in the proxyserver 300 adds the information obtained as a response to the SNMP Getrequest into the management table, updates it, and records it into therecording apparatus through the recording apparatus control unit 15(step 6-6).

Subsequently, with respect to the printer newly registered in themanagement table, “Device Description Document” specified in “UniversalPlug and Play Device Architecture v1.0” is formed on the basis of theobtained information and recorded into the recording apparatus throughthe recording apparatus control unit 15 (step 6-7). In step 6-8, on thebasis of notification means specified in “Universal Plug and Play DeviceArchitecture v1.0”, a Notify packet regarding all of the printersrecorded in the management table is issued by the UPnP protocolprocessing unit 14, thereby notifying that those printers are executingthe services on the network.

If no response is obtained for the SNMP Get request which is issued bythe proxy server 300 (NO in step 6-1-1), step 6-9 follows. In step 6-9,the management table is searched and the registered printer isconfirmed.

If the response is obtained for the SNMP Get request which is issued bythe proxy server 300 (YES in step 6-1-1), step 6-2 follows. The printerdevices registered in the proxy server 300 are compared with theinformation of the printer which made the response. Whether the searchedprinter exists in the management table or not is confirmed by comparingthe management table with the IP address, URL information, or the likeof the printer as a target to which the SNMP packet is issued in step6-1. The processing routine advances to step 6-3.

Although the registered printer has already existed in its ownmanagement table, if no response is obtained from this printer (YES instep 6-9-1), the protocol conversion processing unit 16 in the proxyserver 300 deletes the information of such a printer from the managementtable and updates it (step 6-10) and, subsequently, deletes “DeviceDescription Document” (step 6-11).

Although the registered printer already existed in its own managementtable, if the response is obtained from this printer (NO in step 6-9-1),the printer information obtaining process is finished and the processingroutine advances to the next process.

After the protocol conversion processing unit 16 in the proxy server 300recorded the updated management table into the recording apparatusthrough the recording apparatus control unit 15, the protocol conversionprocessing unit issues the Notify packet regarding all of the printersdeleted from the management table from the UPnP processing unit 14 onthe basis of the notification means specified in “Universal Plug andPlay Device Architecture v1.0” and notifies that those printers havestopped the services on the network (step 6-12).

In the invention, as shown in FIG. 7, the management table is managed ina format of a text file in which the contents of the obtained SNMPobject mentioned above have been described in XML.

After completion of the printer information obtaining process mentionedabove, the protocol conversion processing unit 16 in the proxy server300 starts the protocol converting process (step 2-4). A flowchart ofFIG. 8 shows a flow for the protocol converting process.

The protocol conversion processing unit 16 in the proxy server 300discriminates whether or not the reception notification of a devicesearching protocol “Simple Service Discovery Protocol” (SSDP) packetwhich is issued by the client has been received from the UPnP protocolprocessing unit 14′ and specified in “Universal Plug and Play DeviceArchitecture v1.0”. If it is determined that it has been received (YESin step 8-1), the management table which is managed by the protocolconversion processing unit 16 in the proxy server 300 is searchedthrough the recording apparatus control unit 15. The URL in which“Device Description Document” of the printer corresponding to thesearching conditions of the SSDP packet has been recorded is returned asan SSDP response through the UPnP protocol processing unit 14 (step8-2), and step 8-3 follows.

Whether or not a request to obtain “Device Description Document” hasbeen received through the UPnP protocol processing unit 14 by theHTTPGet request from the client device which obtained such a URL isdiscriminated. If it is determined that the obtaining request has beenreceived (YES in step 8-3), the management table which is managed by theprotocol conversion processing unit 16 in the proxy server 300 issearched through the recording apparatus control unit 15. “DeviceDescription Document” recorded in the designated URL is read out and,thereafter, returned through the UPnP protocol processing unit 14 (step8-4).

The print job is issued from the client device which obtained “DeviceDescription Document” on the basis of control means specified in“Universal Plug and Play Device Architecture v1.0”. Since the jobcommand and the job attributes are described in the format of XML inthis case, if the protocol conversion processing unit 16 in the proxyserver 300 received the print job through the UPnP protocol processingunit 14 (YES in step 8-5), the protocol conversion processing unit 16analyzes the command and the job attributes in the SOAP processing unit.Subsequently, the print protocol which is supported and the IP addressare obtained through the recording apparatus control unit 15 from themanagement table information corresponding to the printer whose outputhas been designated. The received command and attribute information areconverted into the print protocol (step 8-6). After that, theinformation after the conversion is transmitted to the IP address of theprinter whose output has been designated (step 8-7).

The client which issued the print job subsequently transmits job data,in this case, PDL to the proxy server 300 by using an HTTPPost commandon the basis of the control means specified in “Universal Plug and PlayDevice Architecture v1.0”. The protocol conversion processing unit 16 inthe proxy server 300 received the job data converts the received jobdata into the print protocol which is supported by the designatedprinter (step 8-8) in a manner similar to that in the foregoing step andtransmits the job data to the printer IP address obtained before (step8-9).

Whether the UPnP job data has been received or not is discriminated(step 8-8-1).

Whether or not the reception of the job data from the client is notstarted within a specified time, for example, in the embodiment, within30 seconds is discriminated. If it is determined that the reception isnot started (YES in step 8-8-2), the job is abandoned (step 8-10). Ifthe reception is started, the job is not abandoned but the apparatuswaits for the reception in S8-8-1 (NO in step 8-8-2).

The printer which received the job command, job attributes, and job dataanalyzes the job command and job attributes in the print control unit,thereafter, transmits the print job to the printer controller, andexecutes printing.

The proxy server 300 in the invention repetitively executes theforegoing processes in steps 2-2 to 2-4 to thereby periodically updatethe operating situation of the network printer, and executes theprotocol converting process in accordance with the updated information.

When the protocol conversion processing unit 16 in the proxy server 300stops the protocol converting process because of the power-off in step2-5, the protocol conversion processing unit 16 reads out all of themanagement tables through the recording apparatus control unit 15 on thebasis of the notification means specified in “Universal Plug and PlayDevice Architecture v1.0”, issues the Notify packet regarding all of theprinters recorded in the management table through the UPnP protocolprocessing unit 14, thereby notifying that those printers stopped theservices on the network (step 2-6). When the protocol converting processis not stopped in step 2-5, the processing routine is returned to step2-2.

As described above, in the proxy server 300 as an example of the controlapparatus which makes the protocol conversion control with respect tothe devices using a plurality of protocols as targets, the proxy servercomprises: the searching means (3-1 to 3-2 in FIG. 3) for searching forthe device using SSDP of UPnP as an example of the first protocol; theconverting means (for example, 2-4 and the process in FIG. 8) forprotocol-converting the search packet of SNMP as an example of a secondprotocol so as to make the device communicate in accordance with SSDP;the recognizing means (step 6-3) for recognizing whether or not thedevice searched by the searching means corresponds to SSDP; and thecontrol means (step 6-4) for controlling the converting means so as notto execute the protocol conversion into SSDP with respect to the devicerecognized by the recognizing means that the device searched by thesearching means corresponds to SSDP.

Although the embodiment in which the printer is the network device hasbeen shown above, the network supported device can be any of a storagedevice such as a hard disk or the like, a scanner, a copying apparatus,and a device having hybrid functions of them. Such a device can berealized in any of those apparatuses so long as the attributeinformation can be exchanged and the job can be transmitted and receivedto/from the proxy server through the communicating function. In thiscase, the communicating protocol between the proxy server and thenetwork supported device can be similarly realized by any of thestandardized protocol, the general protocol, and the protocol that isunique to the vender.

Although the embodiment has been shown with respect to the networksupported device as an example, it can be also realized by communicationwhich is made by the local connection according to USB, IEEE1394,parallel connection, or the like.

Although the proxy server exists on the network in an independent formin the embodiment, such a proxy server function can be also realized inthe case where it is physically or logically implemented in the networksupported device.

Although the example of “Universal Plug and Play” specified mainly byMicrosoft Corporation, SNMP implemented in the network supportedprinter, and the print protocol has been shown as a combination of theprotocol conversion which is provided by the proxy server in theembodiment, the protocol conversion can be also realized in the case ofthe protocol such as “Rendezvous” proposed by Apple Computer Inc.,“BMLinkS” proposed by JBMIA, or the like. The protocol conversion can bealso used not only in the case of the protocol in which the search andthe control of the devices are integrated but also in the case of theprotocol for searching for the services provided by the device such as“Service Location Protocol (SLP)”, “Multicast DNS Service Discovery”, orthe like and a protocol such as “Web Service” for converting the devicecontrol in a “Remote Procedure Call (RPC) format based on XML/SOAP intothe conventional control protocol.

Although the embodiment has been shown with respect to the example inwhich the HTTP/TCP/UDP/IP protocol is used as an information notifyingprotocol between the proxy servers, the invention does not depend ontransporting means but can be also realized in the case of using anothergeneral protocol or an original protocol so long as it can make thebidirectional communication.

As another aspect to be solved by the embodiment, there is such aproblem that when (N) proxies each corresponding to the same protocol,for example, each for converting the protocol A into the protocol Boperate on the network, one network device is proxy-controlled by those(N) proxies, there is a possibility that for the network client usingthe protocol B, the process is executed as if the different (N) networkdevices operate on the network in spite of the same network device, sothat it can cause a confusion of the user who uses it.

There is ordinarily a limitation in the number of devices in which theproxy can execute the proxy process of the protocol. For example, in thestate where two proxies 1 and 2 for converting the protocol A into theprotocol B operate on the network, if the number of devices in which theproxy converting process of the proxy 1 is equal to M and the number ofdevices in which the proxy converting process of the proxy 2 is equal toN (M>N), there is a possibility that the proxy 1 and the proxy 2mutually execute the protocol converting process for the same networkdevice. There can be a case where in spite of the fact that the protocolconverting processes of the (M+N) network devices can be executed by twoproxies, the processes of only up to (M) network devices can beexecuted. In this case, two proxies execute the overlapped processes forthe (N) network devices and as mentioned above, the overlapped processesare processed as if (2×N) different network devices existed.

A preferred embodiment of the invention will now be described as anexample hereinbelow with reference to the drawings. The protocols,versions, addresses, numerical values, and the like disclosed in theembodiment do not limit the scope of the invention unless otherwisespecified.

A protocol conversion system as an embodiment of the service providingsystem according to the invention will now be described. FIG. 9 is ablock diagram showing a print system according to the embodiment of theinvention.

The general operating system such as “Windows™” of MicrosoftCorporation, “Mac OS (registered trademark)” of Apple Computer Inc., orthe like and the general applications which can be executed on theoperating system have been installed in the client 9100. In the case ofan OS 901 shown in the embodiment, discovery, control, obtainment ofstatuses, and the like of the devices on the network are realized byusing the “Universal Plug and Play (UPnP)” protocol 902 using“eXtensible Markup Language (XML)”/“Simple Object Access Protocol(SOAP)”. For example, after a document formed by the word processor 904as application software is converted into printable data by a printerdriver 903, a print job is issued by using a UPnP protocol 902 to a UPnPprotocol corresponding printer searched and found by the UPnP protocol(registered trademark) 902.

A network corresponding device, in the embodiment, the network supportedprinter 9200 has the TCP/UDP/IP protocol stack 905 as a communicatingfunction. A Simple Network Management Protocol (SNMP) processing unit906 is provided on the protocol stack. A print protocol processing unit907 is mounted on the protocol stack 905 and has functions for analyzinga print request which is issued by the client and sending the printrequest to a printer controller 908.

The printer does not have the UPnP protocol processing unit and cannotsolely respond to a device searching request using the UPnP protocol anda UPnP print job request which are issued by a client 9100.

A proxy server 9300 also similarly has a TCP/UDP/IP protocol stack 909as a communicating function. An HTTP processing unit 9010 is provided onthis protocol stack and an analysis of the HTTP request and the responseprocess are executed.

A Simple Network Management Protocol (SNMP) processing unit 9011 isprovided on the protocol stack 909. A search for the network supportedprinter 200 which does not have the UPnP protocol processing unit andobtainment of the information are executed by such a protocol.

A print protocol processing unit 9012 is provided on the protocol stack909 and the issuance of a print job to the network supported printer9200 which does not have the UPnP protocol processing unit is executedby the print protocol processing unit 9012.

A Simple Object Access Protocol (SOAP) processing unit 9013 is providedin an upper layer of the HTTP 9010. A UPnP protocol processing unit 9014and a protocol conversion processing unit 9016 realize the bidirectionalcommunication of data described by the “eXtensible Markup Language(XML)” through the SOAP processing unit 9013, respectively, with theclient 9100 and another proxy server, if any exists on the network.

The protocol conversion processing unit 9016 is located in an upperlayer of the SNMP processing unit 9011, SOAP processing unit 9013, UPnPprocessing unit 9014, print protocol processing unit 9012, and arecording apparatus control unit 9015 and executes the followingprocesses. That is, after various XML documents which are used in theUPnP protocol are formed, the information of the network supportedprinter obtained through the SNMP processing unit 9011 is recorded intoa recording apparatus which is controlled by the recording apparatuscontrol unit 9015 or, when there is a request from the UPnP protocol,the XML document recorded in the corresponding management table is readout through the recording apparatus control unit 9015 and transmitted tothe UPnP protocol processing unit 9014, and the like.

When the request for the print job by the UPnP protocol is received, theprotocol conversion processing unit 9016 obtains a job command and jobattribute information through the SOAP processing unit 9013, convertstheir contents into a print protocol supported by the printer whoseoutput has been designated, and thereafter, transmits the job to thedesignated printer through the print protocol processing unit 9012.

The protocol conversion processing unit 9016 obtains detailed contentsof the Notify request which is issued from another proxy server throughthe SOAP processing unit 9013 and executes a process according to suchcontents.

The protocol conversion processing unit 9016 executes processes forwriting and reading out the management table which is managed by theproxy server 9300 into/from the recording apparatus which is controlledby the recording apparatus control unit 9015 through the control unit9015.

Similarly, when the protocol conversion processing unit 9016 obtains amanagement table which is managed by another proxy server existing onthe network, it executes processes for writing and reading out itinto/from the recording apparatus which is controlled by the recordingapparatus control unit 9015 through the control unit 9015.

A flow of the control of the present system will now be describedhereinbelow in accordance with flowcharts of FIGS. 10A and 10B. FIGS.10A and 10B are diagrams showing a flowchart for an arbitrating processof the proxy server for executing the protocol conversion. FIG. 13 is aflowchart showing a process in the case where the proxy server which hasalready been activated received a Notify packet from the proxy serverjust after the activation. By the processes shown in the flowcharts,each proxy server is controlled so as to guarantee that the number ofproxy servers in the working mode is equal to 1 on the network. In theembodiment, only the proxy servers in the working mode newly accept theprotocol process of the device which is newly added. Thus, it ispossible to prevent such a situation that a plurality of proxy serversexist on the network at random and execute the protocol convertingprocess without any order.

A processing routine of FIGS. 10A and 10B are started when the proxyserver is activated. According to this processing routine, the proxyserver 9300 which was newly activated discriminates whether anotherproxy server (not shown) has already been activated on the network ornot.

The protocol conversion processing unit 9016 in the proxy server 9300controls the recording apparatus control unit 9015 after the activationand clears and initializes the contents in the management table forrecording the information of the network device which has alreadyexecuted the protocol converting process (step 10-1). Details of themanagement table will be described in the following processing steps.Subsequently, when the client participates in the network and startsservices, a Notify packet is issued to other proxy servers existing onthis network (step 10-2).

At this time, an HTTPNotify request in a format shown in FIG. 14 isissued as an HTTP packet to the multicast address 239.255.255.250 andthe port number 1900.

In the embodiment, the status information of the proxy server, a name ofthe protocol converting process supported by this proxy server, a URL ofthe proxy server, a physical address, and a storage destination URL ofthe management table are described in an XML format into an entity bodyof the HTTPNotify request and notified.

In the diagram,

<status>: Indicates an operation status of the proxy server. Uponactivation, WakeUP is described.

<protocol>: Indicates a protocol which can be converted by the proxyserver. A protocol name such as UPnP, BMLinkS, Rendezvous, or the likeis described. In the embodiment, UPnP proposed mainly by MicrosoftCorporation is described as an example.

<ProxyURL>: An IP address of the proxy server is described in the URLformat.

<ProxyMAC>: A physical address (MAC) of the proxy server is described.

<TableURL>: A storing address in the management table which is managedby the proxy server is described in the URL format.

A flowchart of FIG. 13 shows a control flow in the case where the otherproxy servers which have already existed on the network received theNotify packet from the proxy server 9300. In the case where the proxyservers other than the proxy server 9300 exist on the network and havealready executed the protocol converting process, after the HTTPNotifyrequest 300 is received in the HTTP 9010, an analysis of an entity body301 of the request is executed in the SOAP processing unit 9013 andwhether or not the protocol as a target of the conversion by the proxyserver of a transmitting source side of the Notify packet coincides withthe protocol as a target of the conversion by the proxy server whichreceived the Notify packet is discriminated in step 13-1.

The SOAP processing unit 9013 checks the contents of <protocol>. If itis determined in step 13-1 that the name of the corresponding protocoldoes not coincides with the protocol converting process which isprovided by itself, the SOAP processing unit 9013 ignores the Notifyrequest.

If it is determined in step 13-1 that the name of the correspondingprotocol coincides with the protocol converting process which isprovided by itself, step 13-3 follows. The SOAP processing unit 9013checks the contents of <status> tag and discriminates whether itselement is WakeUP or not in step 13-3.

If it is determined in step 13-3 that the element is WakeUP, step 13-4follows. The protocol conversion processing unit 9016 reads out themanagement table through the recording apparatus control unit 9015 anddiscriminates whether or not a status of the protocol converting processwhich is being executed at present by the unit 9016 itself indicatesthat (the number of devices whose protocol converting process ispossible)=(the number of devices whose protocol converting process isbeing executed). If it is determined in step 13-4 that the server is inthe status where the protocol converting process cannot be newlyprovided any more, step 13-9 follows. An HTTP response 400 in a formatshown in FIG. 15 is issued in a unicast manner to the proxy server 9300which issued the HTTPNotify request. At this time, it is assumed thatthe SOAP processing unit 9013 forms the following information XML-formatdate as an entity body of the HTTP response 400, a network interface(not shown) is controlled through the TCP/UDP/IP protocol stack of theproxy server 9300, and such data is notified. “FULL” denotes that themanagement server of the proxy server is full and the number of devicesas targets of the protocol converting process in the proxy server hasreached the maximum value.

Each label shown in FIG. 15 will now be described.

<status>: Label showing the operation status of the proxy server (anyinformation such as tag or descriptor can be used so long as it can beidentified). In this case, it is used to notify FULL, that is, thestatus where the converting process cannot be provided any more.

<protocol>: Indicates the protocol which can be converted by the proxyserver. A protocol name such as UPnP, BMLinkS, Rendezvous, or the likeis described. In the embodiment, UPnP proposed mainly by MicrosoftCorporation is described as an example.

<ProxyURL>: An IP address of the proxy server is described in the URLformat.

<ProxyMAC>: A physical address (MAC) of the proxy server is described.

<TableURL>: A storing address in the management table which is managedby the proxy server is described in the URL format.

When the status of the protocol converting process which is beingexecuted at present by the server itself indicates that the number ofdevices whose protocol converting process is possible is larger than thenumber of devices whose protocol converting process is being executed,that is, if the server is in the status where the protocol convertingprocess can be newly provided, step 13-5 follows. An HTTP response 400in a format shown in FIG. 23 is issued in a unicast manner to the proxyserver 9300 which issued the HTTPNotify request. At this time, thefollowing information is described in the XML format as an entity bodyof the HTTP response 400 and notified.

In this case,

<status>: Indicates the operation status of the proxy server. In thiscase, WORKING is notified, that is, it is notified that the otherprotocol conversion proxy servers do not need to operate.

<protocol>: Indicates the protocol which can be converted by the proxyserver. A protocol name such as UPnP, BMLinkS, Rendezvous, or the likeis described. In the embodiment, UPnP proposed mainly by MicrosoftCorporation is described as an example.

<ProxyURL>: An IP address of the proxy server is described in the URLformat.

<ProxyMAC>: A physical address (MAC) of the proxy server is described.

<TableURL>: A storing address in the management table which is managedby the proxy server is described in the URL format.

If it is determined in step 13-3 that the element is not WakeUP, step13-6 follows and whether the Notify packet showing that the proxy serveris shut down is a ByeBye packet or not is discriminated. If it is notthe ByeBye packet in step 13-6, the processing routine is finished. Ifit is determined that it is the ByeBye packet, step 13-7 follows. Instep 13-7, whether or not the management table has already been obtainedfrom the proxy server of the transmitting source side of the ByeByepacket is discriminated. If it has already been obtained, the managementtable is deleted and the processing routine is finished. If it is notobtained, the processing routine is finished.

Returning to the flowcharts of FIGS. 10A and 10B, the processes on theproxy server 9300 side which was newly activated will be described.After the Notify packet is issued, if there is a response within aprescribed predetermined time, for example, in the embodiment, within 30seconds (step 10-3), the protocol conversion processing unit 9016executes an analysis of the entity body of the response packet inaccordance with all responses.

Whether or not a response of the status in which the description of theelement of the <status> tag in the entity body shows that at least onedevice is WORKING as a result of the analyzing process in the SOAPprocessing unit 9013 has been returned is discriminated (step 10-4).

As already described by using FIG. 13, the Notify packet which isreceived from the external proxy server is either “Status=FULL” or“Status=WORKING”.

If YES in step 10-4, that is, if “Status=WORKING”, it is determined thateven if the server 9300 itself does not start the services, the processcan be executed by the proxy which has already been in the operatingmode on the network. In this case, the protocol conversion processingunit of the proxy server 9300 is switched to a sleep mode (step 10-5),is held in the sleep mode until a Notify message is received fromanother proxy, and enters a standby mode (step 10-6). When the Notifypacket is received in step 10-6, the protocol converting process is notexecuted after that. A random number is generated and after the elapseof a time corresponding to a value of the random number (step 10-7), theWakeUP packet is issued again to the other proxy server (step 10-2).

As a result of the analyzing process in the SOAP processing unit 9013,if the SOAP processing unit 9013 determines that the description of theelement of the <status> tag in the entity body of the response from theexternal proxy server which was received in step 10-3 indicates thestatus of all FULL or indicates that there is no response of WORKING,the SOAP processing unit 9013 determines that although the proxy whichis at present operating exists on the network, the proxy which isoperating cannot provide new services any more. In other words, if it isdetermined in step 10-4 that at least one response from another proxyserver of “status WORKING” has been returned, this means that“status=FULL”.

In this case, the protocol conversion processing unit 9016 in the proxyserver 9300 makes a request for obtaining the management tables from allof the proxies which transmitted the response of “status=FULL” (step10-8). That is, the HTTPGet request is issued by the HTTP processingunit 9010 to the URL described in <TableURL>, thereby obtaining themanagement tables from the proxies in the FULL status.

Subsequently, whether the obtainment is permitted or not isdiscriminated in step 10-10. If the obtainment is not permitted, step10-5 follows. If the obtainment is permitted, step 10-9 follows.Subsequently, the obtained management tables are recorded into therecording apparatus of the proxy server 9300 through the recordingapparatus control unit 9015 (step 10-9).

Although not shown, if there is no response from the external proxyserver, the processing routine can be moved to an error process fornotifying that no proxy exists.

The printer device recorded in the obtained management table isexecuting the protocol converting process by the proxy in the FULLstatus. Therefore, for the printer device recorded in the table, the CPUin the proxy server 9300 controls the protocol conversion processingunit 9016 so as not to execute the protocol converting process.

According to the invention, therefore, it is possible to avoid such asituation that a plurality of proxy servers execute in an overlappingmanner the protocol converting process to the same network correspondingdevice, in the invention, the same network corresponding printer.

The other proxy server which received the obtainment permission in theFULL status on the network is implemented so as to transmit only oncethe management table which is managed by the proxy server itself whichswitched to the WakeUP status in response to the management tableobtaining request. When a plurality of proxies exist, the managementtable is transmitted only to one of them. The CPU in the proxy serverwhich executed the transmission of the management table oncesubsequently controls so as not to respond to the management tableobtaining request. This process will be explained in FIGS. 12A and 12B.

That is, according to the invention, the number of proxy servers whichcan switch to the protocol converting process from the WakeUP status islimited to one and, at the same time, it is avoided that a plurality ofproxy servers in the WakeUP status are made operative.

That is, when a management table transmitting request is received fromthe proxy server switched to the WakeUP status in step 12-14 in theflowcharts of FIGS. 12A and 12B, the protocol conversion processing unit9016 in the proxy server 9300 discriminates whether the table has beenlocked or not. If it is not locked, the management table is transmittedin response to the management table transmitting request (step 12-16)and, after that, the management table is locked (step 12-17).

As mentioned above, a control is made so that the number of unlockedproxy servers which can actively distribute the table is limited to onlyone per device.

Referring again to FIGS. 10A and 10B, if the management table cannot beobtained (step 10-10), the protocol conversion processing unit 9016 inthe proxy server 9300 is switched to the sleep mode (step 10-5),continues the sleep mode until the Notify message is received fromanother proxy, and does not execute the protocol converting process(step 10-6).

If the obtainment of the management table is permitted and theobtainment is completed in step 10-10, the protocol conversionprocessing unit 9016 in the proxy server 9300 starts to obtain theprinter information in step 10-12.

If there is no response within the predetermined time, for example, inthe embodiment, within 30 seconds in step 10-3, the protocol conversionprocessing unit 9016 in the proxy server 9300 advances to step 10-9.

FIGS. 11A and 11B show flows for the control for obtaining the printerinformation in the proxy server 9300. The protocol conversion processingunit 9016 in the proxy server 9300 broadcasts the SNMP Get request inthe packet format to the following MIB object from the SNMP processingunit 9011 in order to obtain the printer information of the printersexisting on the network (step 11-1).

-   -   PrinterMakerAndModel: Printer vender/model name    -   PrinterName: Printer name    -   PrinterLocation: Printer setting location    -   IPAddress: Printer IP address    -   MACAddress: Printer MAC address    -   SupportedPDL: Page description language which is supported    -   SupportedPrintProtocol: Print protocol which is supported

The network supported printer 9200 which received the SNMP Get requestforms information corresponding to each object in the SNMP processingunit 9011 and, thereafter, transmits a response as an SNMP response tothe proxy server 9300 in a unicast manner.

When the response is received from each network corresponding printer instep 11-2, the protocol conversion processing unit 9016 in the proxyserver 9300 compares the contents of each response with the contents ofthe management table which has already been registered in the recordingapparatus (step 11-3). If no response is received in step 11-2, theprocessing routine is finished.

It should be noted that when the management table becomes full, thereare two kinds of statuses. First, there is the status where when aresponse is newly made by the device, the management table becomes fullfor the first time while including such a device at this point of time.Second, there is the status where the management table has already beenfull and the response from further another device has been recognized.In the embodiment, the second FULL status of the proxy server isdistinguished as being “status=FULL mode status”.

The presence or absence of the printer which has already executed theprotocol conversion is discriminated by comparing the management tableobtained from the proxy in the “status=FULL mode” in step 10-9 mentionedabove in FIGS. 10A and 10B with all management tables which have beenalready obtained (step 11-4).

If it is determined that the network printers which do not execute theprotocol converting process exist, the printers which do not execute theprotocol converting process are detected and step 11-8 follows.

If it is determined in step 11-8 that the management table which ismanaged by the proxy server 9300 is full, that is, if the number ofprinters which are executing the protocol converting process is equal toor has already reached the number of printer devices which can executethe protocol converting process in the protocol conversion processingunit 9016 in the proxy server 9300, step 11-7 follows.

Subsequently, whether the status of the device detected in step 11-4mentioned above has been set to FULL mode or not is discriminated (step11-7). If it is determined in step 11-7 that the status of the detecteddevice is not the FULL mode, the protocol conversion processing unit9016 in the proxy server 9300 switchs the status to the FULL mode (step11-5). After that, an HTTPNotify request in a format shown in FIG. 24 isissued to the multicast address 239.255.255.250 and the port number 1900(step 11-6). At this time, the information shown in FIG. 7 mentionedabove is notified as an entity body of the HTTP request. By the Notifypacket, the proxy servers other than the proxy server 9300 existing onthe network are notified that the proxy server 9300 has been switched tothe FULL status. That is, the Notify packet is issued only when themanagement table becomes full for the first time since the protocolconversion processing unit 9016 has started to operate.

In step 11-8, the protocol conversion processing unit 9016 in the proxyserver 9300 discriminates whether or not the number of printers whichare executing the protocol converting process at present is less thanthe number of printer devices which can execute the protocol convertingprocess, that is, whether or not the newly detected printers can executethe protocol converting process.

If it is determined in step 11-8 that the printers can execute theprotocol converting process, step 11-7 follows and whether the status isalready the FULL mode or not is discriminated. If it is the FULL mode,whether or not the detected printers are the new devices which havenever been handled by the proxy server is discriminated (step 11-15).

If it is determined that they are the new devices, step 11-11 follows.If it is determined that they are not the new devices, it means that thedevices which have been handled by the proxy server in the past werereturned from the standby mode, deep sleep mode, sleep mode, off-line,stop mode, or the like and the protocol converting process becomesnecessary again. Therefore, step 11-9 follows. In step 11-9, theprotocol conversion processing unit 9016 in the proxy server 9300records the updated management table into the recording apparatusthrough the recording apparatus control unit 9015, thereafter, forms a“Device Description Document” specified in “Universal Plug and PlayDevice Architecture v1.0” on the basis of the obtained information withrespect the printers newly registered in the management table, andrecords it into the recording apparatus through the recording apparatuscontrol unit 9015 (step 11-9). Subsequently, in step 11-10, the Notifypacket regarding all of the printers recorded in the management table isissued by the UPnP processing unit 9014 on the basis of the notificationmeans specified in “Universal Plug and Play Device Architecture v1.0”,thereby notifying that those printers are executing the services on thenetwork.

When the network printers which have stopped the protocol conversion aredetected in step 11-15, the processing routine advances to step 11-9. A“Device Description Document” specified in “Universal Plug and PlayDevice Architecture v1.0” is formed and recorded into the recordingapparatus through the recording apparatus control unit 9015.Subsequently, in step 11-10, the Notify packet regarding all of theprinters recorded in the management table is issued by the UPnPprocessing unit 9014 on the basis of the notification means specified in“Universal Plug and Play Device Architecture v1.0”, thereby notifyingthat those printers are executing the services on the network.

Subsequent to each of the above processes, in step 11-11, whether or notthe response can be obtained from the printer in spite of the printerwhich has already been recorded in its management table in the casewhere no response is obtained in response to the SNMP Get request whichis issued by the proxy server 9300, is discriminated. If no response isobtained in 11-11, whether the status is the FULL mode or not isdiscriminated (step 11-14). If it is determined in step 11-14 that thestatus is not the FULL mode, the protocol conversion processing unit9016 in the proxy server 9300 deletes the printer information and the“Device Description Document” from the management table (step 11-12) andadvances to step 11-13.

In step 11-13, after the protocol conversion processing unit 9016 in theproxy server 9300 recorded the updated management table into therecording apparatus through the recording apparatus control unit 9015,the protocol conversion processing unit issues the Notify packetregarding all of the printers deleted from the management table by theUPnP processing unit 9014 on the basis of the notification meansspecified in “Universal Plug and Play Device Architecture v1.0”, therebynotifying that those printers-stopped the services on the network.

If the protocol conversion processing unit 9016 in the proxy server 9300determines in step 11-14 that the status has been switched to the FULLmode, the relevant printer information is not deleted from themanagement table. The protocol conversion processing unit 9016 in theproxy server 9300 issues the Notify packet regarding all of the networkprinters from which there is no response by the UPnP processing unit9014 on the basis of the notification means specified in “Universal Plugand Play Device Architecture v1.0”, thereby notifying that thoseprinters stopped the services on the network (step 11-13). Theprocessing routine is finished.

In the invention, the management table is managed in the format of thetext file in which the contents of the SNMP object obtained anddescribed before have been described in XML as shown in FIG. 25. A tableof the printers is defined in FIG. 25. Each printer is defined in aportion sandwiched between printer tags <Printer> and </Printer>. In thediagram, as described between the tags, a printer name, a settinglocation, an IP address, an MAC address, a corresponding language, aprint protocol which is supported, and the like are defined. Wheninformation is obtained from a plurality of printers, similarly, theinformation of a plurality of printers is written in portions shown by*** marks and can be managed.

When the printer information obtaining process is completed, theprotocol conversion processing unit 9016 in the proxy server 9300 startsthe protocol converting process of step 10-13.

Flowcharts of FIGS. 12A and 12B show flows for the protocol convertingprocess.

When the protocol conversion processing unit 9016 in the proxy server9300 receives a reception notification of a device searching protocol“Simple Service Discovery Protocol (SSDP)” packet which is issued fromthe client and specified in “Universal Plug and Play Device Architecturev1.0” from the UPnP protocol processing unit 9014 (step 12-1), themanagement table managed by the protocol conversion processing unit 9016in the proxy server 9300 is searched through the recording apparatuscontrol unit 9015 and the URL in which the “Device Description Document”of the printer corresponding to the searching conditions of the SSDPpacket is returned as an SSDP response through the UPnP protocolprocessing unit 9014 (step 12-2).

When the obtaining request of the “Device Description Document” isreceived from the UPnP protocol processing unit 9014 by the HTTPGetrequest from the client device which obtained such a URL (step 12-3),the management table managed by the protocol conversion processing unit9016 in the proxy server 9300 is searched through the recordingapparatus control unit 9015 and the “Device Description Document”recorded in the designated URL is read out and, thereafter, returnedthrough the UPnP protocol processing unit 9014 (step 12-4).

The print job is issued from the client device which obtained the“Device Description Document” on the basis of the control meansspecified in “Universal Plug and Play Device Architecture v1.0”. Sincethe job command and the job attributes are described in the format ofXML in this case, when the protocol conversion processing unit 9016 inthe proxy server 9300 receives the print job through the UPnP protocolprocessing unit 9014 (step 12-5), the protocol conversion processingunit 9016 analyzes the command and the job attributes in the SOAPprocessing unit 9013, subsequently, obtains the print protocol which issupported and the IP address in the management table informationcorresponding to the printer whose output has been designated throughthe recording apparatus control unit 9015, and converts the receivedcommand and attribute information into such a print protocol (step12-6). After that, the information after the conversion is transmittedto the IP address of the printer whose output has been designated (step12-7). The client which issued the print job subsequently transmits thejob data, in this case, PDL to the proxy server 9300 by using theHTTPPost command on the basis of the control means specified in“Universal Plug and Play Device Architecture v1.0”. The protocolconversion processing unit 9016 in the proxy server 9300 which receivedthe job data converts the received job data into the print protocolwhich is supported by the designated printer (step 12-9-1) and transmitsthe job data to the IP address of the printer which has been obtainedbefore (step 12-9-2) in a manner similar to that mentioned above.

When the reception of the job data is not started from the client withina predetermined time, for example, in the embodiment, within 30 seconds(step 12-10), the job is abandoned (step 12-11).

The printer which received the job command, job attributes, and job dataanalyzes the job command and job attributes by the print control unit,thereafter, transmits the print job to the printer controller, andexecutes printing.

The proxy server 9300 in the invention repetitively executes the aboveprocesses to thereby periodically update the operating state of thenetwork printer, and executes the protocol converting process inaccordance with the updated information.

When the protocol conversion processing unit 9016 in the proxy server9300 stops the protocol converting process because of the power-off instep 10-14, the protocol conversion processing unit 9016 reads out allmanagement tables through the recording apparatus control unit 9015 onthe basis of the notification means specified in “Universal Plug andPlay Device Architecture v1.0”, issues the Notify packet regarding allof the printers recorded in the management table through the UPnPprotocol processing unit 9014, and notifies that those printers stoppedthe services on the network (step 10-15). After the execution of thenotifying process by the UPnP protocol, the protocol conversionprocessing unit 9016 issues the HTTPNotify request in the format shownin FIG. 11 to the multicast address 239.255.255.250 and the port number1900 (step 10-16). At this time, the following information is describedin the XML format and notified as an entity body of the HTTP request.

In the diagram,

<status>: Indicates an operation status of the proxy server. In thiscase, ByeBye, that is, the stop of the protocol converting process isnotified.

<protocol>: Indicates a protocol which can be converted by the proxyserver. A protocol name such as UPnP, BMLinkS, Rendezvous, or the likeis described. In the embodiment, UPnP proposed mainly by MicrosoftCorporation is described as an example.

<ProxyURL>: An IP address of the proxy server is described in the URLformat.

<ProxyMAC>: A physical address (MAC) of the proxy server is described.

<TableURL>: A storing address in the management table which is managedby the proxy server is described in the URL format.

By executing the above processes, the proxy server 9300 notifies anotherproxy server which operates on the network that the protocol convertingprocess was stopped.

In step 13-6 in the flowchart of FIG. 13, when the protocol conversionprocessing unit 9016 in the proxy server 9300 receives the Notify packetindicative of the stop of the protocol converting process from anotherproxy server which was operating on the network, the entity body of thepacket is analyzed in the SOAP processing unit 9013 and whether or notthe management table has been obtained from the proxy server whichissued the Notify packet is discriminated. When the management table isobtained in step 13-7, this management table is deleted through therecording apparatus control unit 9015 (step 13-8).

That is, the converting process of the printer to which the proxy serverthat issued ByeBye provided the protocol converting process is takenover by the proxy server 9300 which is at present in the working mode.

The protocol conversion processing unit 9016 in the proxy server 9300switched to the sleep mode in step 10-5 in the flowcharts of FIGS. 10Aand 10B monitors the Notify packet which is issued from another proxyserver. If even one packet in which the element of <status> is ByeBye orFULL in the entity body of the Notify packet received through the SOAPprocessing unit 9013 exists, the protocol conversion processing unit9016 forms a random number of an integer of 1-30 in accordance with apredetermined algorithm and, subsequently, waits for seconds equivalentto a value of the formed random number. After that, the Notify packetissuing process in steps 10-7 and 10-2 are executed.

As mentioned above, the proxy server 9300 as an example of the controlapparatus for executing the protocol converting process in the networksystem in which a plurality of kinds of protocols exist mixedlycomprises: the searching means (the function which is realized by amethod whereby the CPU in the proxy server 9300 executes the controlprogram stored in the memory as shown in steps 10-3 and 10-4 in FIGS.10A and 10B) for multicasting the searching request to the network andsearching upon activation whether or not another proxy server (notshown) does not exist on the network; the discriminating means (step10-4) for, when another protocol converting apparatus is searched on thenetwork by the searching means, discriminating whether the searchedprotocol converting apparatus can execute the protocol convertingprocess or has executed it; and the activating means (for example, theUPnP protocol processing unit 9014 itself in FIG. 9 can activate andexecute step 10-13 or the processing step can be also activated from asearching application (not shown) or the OS) for, when it is decided bythe discriminating means that the searched protocol converting apparatuscannot execute the protocol converting process or does not execute it,activating step 10-13 as an example of the protocol converting process.

Although the embodiment has been shown on the assumption that theprinter is the network device, the network supported device can berealized in any case of the storage device such as a hard disk or thelike, the scanner, the copying apparatus, and the device having thosehybrid functions which can exchange the attribute information with theproxy server through the communicating function and transmit and receivethe job.

The communicating protocol between the proxy server and the networksupported device in this case can be also similarly realized by eitherthe standardized or general protocol or the protocol that is unique tothe vender.

Although the embodiment has been shown on the assumption that thenetwork supported device is used as an example, the communicationbetween the device and the proxy server can be also realized bycommunication which is made by the local connection according to USB,IEEE1394, parallel connection, or the like.

Although the proxy server exists on the network in an independent formin the embodiment, such a proxy server function can be also realized inthe case where it is physically or logically implemented in the networksupported device.

Although the example of “Universal Plug and Play” specified mainly byMicrosoft Corporation, SNMP implemented in the network supportedprinter, and the print protocol has been shown as a combination of theprotocol conversion which is provided by the proxy server in theembodiment, the protocol conversion can be also realized in the case ofthe protocol such as “Rendezvous” proposed by Apple Computer Inc.,“BMLinkS” proposed by JBMIA, or the like. The protocol conversion can bealso used not only in the case of the protocol in which the search andthe control of the devices are integrated but also in the case of theprotocol for searching for the services provided by the device such as“Service Location Protocol (SLP)”, “Multicast DNS Service Discovery”, orthe like, and a protocol such as “Web Service” for converting the devicecontrol in a “Remote Procedure Call (RPC) format based on XML/SOAP intothe conventional control protocol.

In the embodiment, when the Notify packet is issued by HTTP, theadditional information is described in the format of XML into the entityof such a packet and the resultant packet is transmitted. However, thedescription of the entity can be also realized by a description usingbinary data. It can be also realized by newly defining an HTTP headerand using notifying means in a form using such a header.

Although the embodiment has been shown with respect to the example inwhich the HTTP/TCP/UDP/IP protocol is used as an information notifyingprotocol between the proxy servers, the invention does not depend ontransporting means but can be also realized in the case of using anothergeneral protocol or an original protocol so long as it can make thebidirectional communication.

As described above, as one aspect of the embodiment, there are providedthe following functions: that is, when the protocol convertingapparatuses having the same protocol converting function are in theoperative mode on the same communication line, the protocol conversionprocessing apparatus automatically obtains the statuses of otherprotocol conversion processing apparatuses and can discriminate theexecution or standby of the protocol converting process, and when theprotocol converting process is executed, the information of theinformation processing apparatuses which have executed the protocolconversion is obtained from the protocol conversion processingapparatuses which have already executed the same protocol convertingprocess, and the protocol conversion is not executed to thoseinformation processing apparatuses. Therefore, it is possible to avoidsuch a situation that among the protocol conversion processingapparatuses which provide the same protocol converting process, theprotocol converting process is executed in an overlapping manner to thesame information processing apparatus.

Further, according to another aspect of the embodiment, the protocolconversion processing apparatus to which the invention is appliedautomatically executes those processes and the converting ability of theprotocol conversion processing apparatus can be maximally used even ifthe users (including the network administrator) who use the informationprocessing apparatus on the network are not concerned with any specialsetting, control, or the like.

Third Embodiment

A preferred embodiment of the invention will now be described asexamples in detail hereinbelow with reference to the drawings. In amanner similar to that mentioned above, protocols, versions, addresses,numerical values, and the like disclosed in the embodiment do not limitthe scope of the invention unless otherwise specified.

A protocol conversion system as an embodiment of the service providingsystem according to the invention will now be described. FIG. 16 is ablock diagram showing a construction of a print system according to theembodiment of the invention.

The general operating system such as “Windows™” of MicrosoftCorporation, MacOS (registered trademark) of Apple Computer Inc., or thelike and general Web browser, application software, and the like whichcan be executed on the operating system have been installed in a client16100.

In the case of a “Windows™” OS 161 shown in the embodiment, discovery,control, obtainment of statuses, and the like of the devices on thenetwork are realized by using a “Universal Plug and Play (UPnP)”protocol 162 using “eXtensible Markup Language (XML)”/“Simple ObjectAccess Protocol (SOAP)”. A presentation document described in HTMLobtained from the UPnP compliant device is displayed by a Web browser163 and a document formed by, for example, a word processor 164 asapplication software by using a script or the like installed in the Webbrowser is transmitted together with print attribute information to aUPnP protocol corresponding printer to which the presentation documenthas been transmitted.

A network corresponding device, in the embodiment, a network supportedprinter 16200 has a TCP/UDP/IP protocol stack 165 as a communicatingfunction. A Simple Network Management Protocol (SNMP) processing unit166 is provided on the protocol stack 165. A print protocol processingunit 167 is mounted on the protocol stack 165 and has functions foranalyzing the print request which is issued by the client and sendingthe print request to a printer controller 168.

The printer does not have the UPnP protocol processing unit and cannotsolely respond to a device searching request using the UPnP protocol anda UPnP print job request which are issued by the client 16100.

A proxy server 16300 also similarly has a TCP/UDP/IP protocol stack 1609as a communicating function. An HTTP 1610 is provided on this protocolstack and an analysis of an HTTP request and a response process areexecuted.

A Simple Network Management Protocol (SNMP) processing unit 1611 isprovided on the protocol stack 1609. The search of the network supportedprinter 16200 which does not have the UPnP protocol processing unit andobtainment of information are executed by the above protocol.

A print protocol processing unit 1612 is provided on the protocol stack1609. An issuance of the print job to the network supported printer16200 which does not have the UPnP protocol processing unit is executedin the print protocol processing unit 1612.

A Simple Object Access Protocol (SOAP) processing unit 1613 is providedfor an upper layer of the HTTP 1610. When a UPnP protocol processingunit 1614 and a protocol conversion processing unit 1616 exist on thenetwork, respectively, and when a plurality of clients 16100 and aplurality of proxy servers exist on the network through the SOAPprocessing unit 1613, respectively, the bidirectional communication ofthe data described by the “eXtensible Markup Language (XML)” isrealized.

The protocol conversion processing unit 1616 is located in an upperlayer of the SNMP processing unit 1611, SOAP processing unit 1613, UPnPprocessing unit 1614, print protocol processing unit 1612, a recordingapparatus control unit 1615, an XML forming unit 1617, and an HTMLforming unit 1618 and executes the following processes. That is, aftervarious XML documents which are used in the UPnP protocol are formed bythe XML forming unit 1617 and the presentation document which is used inthe UPnP protocol is formed by the HTML forming unit 1618, informationof the network supported printer obtained through the SNMP processingunit 1611 is recorded into a recording apparatus which is controlled bythe recording apparatus control unit 1615 or, when there is a requestfrom the UPnP protocol, an XML document and the presentation documentrecorded in the corresponding management table are read out through therecording apparatus control unit 1615 and transmitted to the UPnPprotocol processing unit 1614, and the like.

When the request for the print job by the UPnP protocol is received, theprotocol conversion processing unit 1616 obtains a job command and jobattribute information through the SOAP processing unit 1613, convertstheir contents into a print protocol supported by the printer whoseoutput has been designated, and thereafter, transmits the job to thedesignated printer through the print protocol processing unit 1612. Atthis time, the job attributes are analyzed and when the type of thereceived job data is the data type which is not supported by thedesignated printer, the file conversion processing unit 1619 convertsthe data into printable data supported by the designated printer and,thereafter, transmits the job to the designated printer through theprint protocol processing unit 1612.

The protocol conversion processing unit 1616 executes processes forwriting and reading out the management table which is managed by theproxy server 16300 into/from the recording apparatus which is controlledby the recording apparatus control unit 1615 through the control unit1615.

Similarly, when the protocol conversion processing unit 1616 obtains amanagement table which is managed by another proxy server existing onthe network, it executes processes for writing and reading out itinto/from the recording apparatus which is controlled by the recordingapparatus control unit 1615 through the control unit 1615.

A flow of the control of the present system will now be describedhereinbelow in accordance with a flowchart of FIG. 17.

After the protocol conversion processing unit 1616 in the proxy server16300 is activated, it clears through the recording apparatus controlunit 1615 the contents in the management table in which the informationof the network device which has executed the protocol converting processis recorded (step 17-1). Details of the management table will beexplained in the following processes.

Subsequently, when the client participates in the network and startsservices, the processing routine advances to step 17-2 in order tosearch for the network corresponding printer existing on this networkand the obtainment of the printer information is started.

A flowchart of FIG. 18 shows a flow for the control for obtaining theprinter information.

The protocol conversion processing unit 1616 in the proxy server 16300broadcasts an SNMP Get request to the following MIB object from the SNMPprocessing unit 1611 in order to obtain the printer information of theprinters existing on the network (step 18-1). In step 18-1-2, whetherthe response has been received or not is discriminated. If the responsehas been received in step 18-1-2, step 18-2 follows. If no response isreceived in step 18-1-2, step 18-8 follows.

-   -   PrinterMakerAndModel: Printer vender/model name    -   PrinterName: Printer name    -   PrinterLocation: Printer setting location    -   IPAddress: Printer IP address    -   MACAddress: Printer MAC address    -   SupportedPDL: Page description language which is supported    -   SupportedPrintProtocol: Print protocol which is supported

The network supported printer 16200 which received the SNMP Get requestwhich is issued by the proxy server in step 18-1 form informationcorresponding to each object in the SNMP processing unit 1611 and,thereafter, transmit a response as an SNMP response to the proxy server16300 in a unicast manner.

The protocol conversion processing unit 1616 in the proxy server 16300which received the response from each network supported printer inS18-1-2 compares contents of each response with contents in themanagement table which has already been registered in the recordingapparatus (step 18-2). Subsequently, the protocol conversion processingunit 1616 discriminates whether or not the printer is a printer whichhas already executed the protocol conversion (step 18-3). If it isdetermined in S18-3 that the printer is a printer which has executed theprotocol converting process, the processing routine is finished.

If it is determined in S18-3 that the printer is a printer which doesnot execute the protocol conversion, that is, a printer which has newlybeen found, the protocol conversion processing unit 1616 in the proxyserver 16300 adds the information obtained as a response of the SNMP Getrequest into the management table and updates it and records it into therecording apparatus through the recording apparatus control unit 1615(step 18-4).

Subsequently, with respect to the printer newly registered in themanagement table, “Device Description Document” specified in “UniversalPlug and Play Device Architecture v1.0” is formed by the XML formingunit 1617 on the basis of the obtained information and the formeddocument is recorded into the recording apparatus through the recordingapparatus control unit 1615 (step 18-5) and the presentation documentdescribed in HTML is formed in the HTML forming unit 1618. Icons, imagedata, and the like which are necessary for forming the presentationdocument have been recorded in the recording apparatus. The HTML formingunit 1618 obtains the necessary information through the recordingapparatus control unit 1615. The presentation document formed by theHTML forming unit 1618 is recorded into the recording apparatus throughthe recording apparatus control unit 1615 (step 18-6).

In step 18-7, on the basis of notification means specified in “UniversalPlug and Play Device. Architecture v1.0”, a Notify packet regarding allof the printers recorded in the management table is issued by the UPnPprotocol processing unit 1614, thereby notifying that those printers areexecuting the services on the network.

If no response is obtained for the SNMP Get request which is issued bythe proxy server 16300, step 18-8 follows. In step 18-8, the presence orabsence of the printers which have already been registered in its ownmanagement table is discriminated. In step S18-8-1, whether or not theprinter is a printer which has already been registered is discriminated.If it is determined in step S18-8-1 that the registered printer exists,the protocol conversion processing unit 1616 in the proxy server 16300deletes the printer information from the management table and updates it(step 18-9). Subsequently, deletion of the “Device Description Document”(step 18-10) and deletion of the presentation document (step 18-11) areexecuted.

The protocol conversion processing unit 1616 in the proxy server 16300records the updated management table into the recording apparatusthrough the recording apparatus control unit 1615. After that, theprotocol conversion processing unit issues the Notify packet regardingall of the printers deleted from the management table from the UPnPprocessing unit 1614 on the basis of the notification means specified in“Universal Plug and Play Device Architecture v1.0” and notifies thatthose printers have stopped the services on the network (step 18-12).

In the invention, as shown in FIG. 26, the management table is managedin the format of the text file in which the contents of the obtainedSNMP object mentioned above have been described in XML.

The processes described above in FIG. 18 correspond to the printerinformation obtaining process in FIG. 17. Returning to FIG. 17, aftercompletion of the printer information obtaining process, the protocolconversion processing unit 1616 in the proxy server 16300 starts theprotocol converting process (step 17-3).

Detailed processes are shown hereinbelow by using FIGS. 20A and 20B.Flowcharts of FIGS. 20A and 20B show flows for the protocol convertingprocess. The protocol conversion processing unit 1616 in the proxyserver 16300 discriminates whether or not the reception notification ofa device searching protocol “Simple Service Discovery Protocol” (SSDP)packet which is issued by the client has been received from the UPnPprotocol processing unit 1614 and specified in “Universal Plug and PlayDevice Architecture v1.0” (step 20-1). If it is determined that it hasbeen received in step 20-1, step S20-2 follows. If it is decided that itis not received, step S20-3 follows.

In S20-2, the management table which is managed by the protocolconversion processing unit 1616 in the proxy server 16300 is searchedthrough the recording apparatus control unit 1615. The URL in which“Device Description Document” of the printer corresponding to thesearching conditions of the SSDP packet has been recorded is returned asan SSDP response through the UPnP protocol processing unit 1614 (step20-2), and step 8-3 follows.

Whether or not a request to obtain “Device Description Document” hasbeen received through the UPnP protocol processing unit 1614 by theHTTPGet request from the client device which obtained such a URL isdiscriminated (step 20-3). If it is determined in step 20-3 that theobtaining request has been received, the management table which ismanaged by the protocol conversion processing unit 1616 in the proxyserver 16300 is searched through the recording apparatus control unit1615. “Device Description Document” recorded in the designated URL isread out and, thereafter, returned through the UPnP protocol processingunit 1614 (step 20-4) and step 20-5 follows. If it is decided in step20-3 that the obtaining request is not received, step 20-5 follows.

A storage destination of the presentation document formed in step 18-6has been recorded by URL in the “Device Description Document”. Whetheror not the obtaining request of the presentation document has beenreceived from the UPnP protocol processing unit 1614 by the HTTPGetrequest from the client device is discriminated (step 20-5). If it isdetermined that the obtaining request of the presentation document hasbeen received, step 20-6 follows. In step 20-6, the management tablewhich is managed by the protocol conversion processing unit 1616 in theproxy server 16300 is searched through the recording apparatus controlunit 1615. The presentation document recorded in the designated URL isread out and, thereafter, returned through the UPnP protocol processingunit 1614. If it is decided that the obtaining request of thepresentation document is not received, step 20-7 follows.

In the case of the client 16100 shown in the embodiment, the operatingsystem corresponds to the UPnP protocol. After completion of thereception of the presentation document from the proxy server 16300 instep 20-6, the Web browser is automatically activated and the receivedpresentation document is displayed.

FIG. 21 shows contents of the presentation document displayed on thedisplay of the client 16100. By seeing this display, the user who usesthe client 16100 can visually confirm information such as device name,model name, IP address, implementing state of an option, and the likeregarding the network supported printer 16200 through the displaycontents.

When “Print document” in the above display is clicked, the displayscreen is switched to a page shown in FIG. 22. With respect to thenetwork supported printer 16200, the following job attributes can bedesignated. The designation of the file to be outputted: Print File, thenumber of output copies: Copy, a size of output sheet: Media Size, apage layout: N-Up, designation of the two-sided/simplex printing:Two-sided printing, print quality: Print Quality, orientation:Orientation, and the like. After completion of the settings of thoseattribute information, by clicking a Print button, the script describedin the presentation document forms an SOAP envelope in accordance with aschema specified in “Universal Plug and Play Device Architecture v1.0”and, thereafter, the HTTPPost request is issued to the proxy 16300.

When the protocol conversion processing unit 1616 in the proxy server16300 received the request through the UPnP protocol processing unit1614 (step 20-7), the protocol conversion processing unit 1616 analyzesthe command and the job attributes in the SOAP processing unit,subsequently obtains the print protocol which is supported and the IPaddress in the information of the management table corresponding to theprinter whose output has been designated through the recording apparatuscontrol unit 1615, and converts the received command and the receivedattribute information into the print protocol (step 20-8). After that,the information after the conversion is transmitted to the IP address ofthe printer whose output has been designated (step 20-9).

The client which issued the print job subsequently transmits the jobdata to the proxy server 16300 by using the HTTPPost command on thebasis of the control means specified in “Universal Plug and Play DeviceArchitecture v1.0”. The protocol conversion processing unit 1616 in theproxy server 16300 which received the job data analyzes a data type ofthe reception data. When the data type coincides with “SupportedPDL:Page description language which is supported” which is recorded in themanagement table obtained in step 18-4, in a manner similar to that inthe foregoing steps, the received job data is converted into the printprotocol which is supported by the designated printer (step 20-10) andthe job data is transmitted to the printer IP address which has beenobtained before (step 20-11).

Whether the UPnP job data has been received or not is discriminated instep 20-9-1. If it is determined in step 20-9-1 that the UPnP job datahas been received, step 20-9-2 follows. In step 20-9-2, as a result ofthe analysis of the data type of the reception data, if it is determinedthat it does not coincide with “SupportedPDL: Page description languagewhich is supported” which is recorded in the management informationobtained in step 18-4, the protocol conversion processing unit 1616converts the received data into the obtained printer PDL data in a fileconversion processing unit 1619 in step 20-12 and, thereafter, convertsit into the print protocol which is supported by the designated printer(step 20-10). Subsequently, the job data after the conversion istransmitted to the printer IP address obtained before (step 20-11) andthe processing routine is finished.

As a result of the analysis of the data type of the reception data, ifit is determined in step 20-9-2 that it coincides with “SupportedPDL:Page description language which is supported” which is recorded in themanagement information obtained in step 18-4, the processing routineadvances to step 20-10 and similarly advances to a process in step20-11. The processing routine is finished.

If the job data is not received in step 20-9-1 and if it is determinedin step 20-11-1 that a predetermined time has elapsed, when thereception of the job data is not started by the client within 30 secondsin the embodiment, the job is abandoned (step 20-13).

The printer which received the job command, job attributes, and job dataanalyzes the job command and the job attributes in the print controlunit, thereafter, transmits the print job to the printer controller, andexecutes the printing.

The proxy server 16300 in the invention repetitively executes theprocesses in steps 17-2 and 17-3 mentioned above to thereby periodicallyupdate the operating mode of the network printer, and executes theprotocol converting process in accordance with the updated information.

In step 17-4, whether the protocol conversion processing unit 1616 inthe proxy server 16300 stops the protocol converting process because ofthe power-off is discriminated. If it is determined in step 17-4 that itstops the protocol converting process, the protocol conversionprocessing unit 1616 reads out all of the management tables through therecording apparatus control unit 1615 on the basis of the notificationmeans specified in “Universal Plug and Play Device Architecture v1.0”,issues the Notify packet regarding all of the printers recorded in themanagement table through the UPnP protocol processing unit 1614, andnotifies that those printers have stopped the services on the network(step 17-5).

If it is decided in step 17-4 that it does not stop the protocolconverting process, the processing routine is returned to the printerinformation obtaining process (step 17-2).

Although the embodiment has been shown on the assumption that theprinter is the network device, the network supported device can berealized in any case of the storage device such as a hard disk or thelike, the copying apparatus, and the device having those hybridfunctions which can exchange the attribute information with the proxyserver through the communicating function and transmit and receive thejob.

The communicating protocol between the proxy server and the networksupported device in this case can be also similarly realized by eitherthe standardized or general protocol or the protocol that is unique tothe vender.

Although the embodiment has been shown on the assumption that thenetwork supported device is used as an example, the communicationbetween the device and the proxy server can be also realized bycommunication which is made by the local connection according to USB,IEEE1394, parallel connection, or the like.

Although the proxy server exists on the network in an independent formin the embodiment, such a proxy server function can be also realized inthe case where it is physically or logically implemented in the networksupported device. Similarly, such a proxy server function can be alsorealized in the case where it is physically or logically implemented inthe network client device.

Although the example of “Universal Plug and Play” specified mainly byMicrosoft Corporation, SNMP implemented in the network supportedprinter, and the print protocol has been shown as a combination of theprotocol conversion which is provided by the proxy server in theembodiment, the protocol conversion can be also realized in the case ofthe protocol such as “Rendezvous” proposed by Apple Computer Inc.,“BMLinkS” proposed by JBMIA, or the like. The protocol conversion can bealso used not only in the case of the protocol in which the search andthe control of the devices are integrated but also in the case of theprotocol for searching for the services provided by the device such as“Service Location Protocol (SLP)”, “Multicast DNS Service Discovery”, orthe like and a protocol such as “Web Service” for converting the devicecontrol in a “Remote Procedure Call (RPC)” format based on XML/SOAP intothe conventional control protocol.

Although the embodiment has been shown with respect to the example inwhich the HTTP/TCP/UDP/IP protocol is used as an information notifyingprotocol between the proxy servers, the invention does not depend on thetransporting means but can be also realized in the case of using anothergeneral protocol or a unique protocol so long as it can make thebidirectional communication.

Other Embodiments

The processes shown in the diagrams in the embodiments are executed bythe CPUs (central processing units) provided for the client, proxyserver, and printer in accordance with programs which are installed fromthe outside, respectively. In this case, the invention is also appliedto the case where an information group including the programs which issupplied from a storing medium such as CD-ROM, flash memory, FD, or thelike or from an external storing medium through the network.

Naturally, the objects of the invention are also accomplished by amethod whereby the storing medium in which program codes of the softwarewhich realizes the functions of the foregoing embodiments have beenrecorded as mentioned above is supplied to a system or an apparatus ordownloaded from an external server (not shown), so that a computer (or aCPU or an MPU) of the system or apparatus reads out and executes theprogram codes stored in the storing medium.

In this case, the program codes themselves read out from the storingmedium realize the novel functions of the invention. The storing mediumin which the program codes have been stored constructs the invention. Asa storing medium for supplying the program codes, for example, a floppydisk, a hard disk, an optical disk, a magnetooptic disk, a DVD, aCD-ROM, a magnetic tape, a non-volatile memory card, a ROM, an EEPROM,or the like can be used.

Naturally, the invention incorporates not only the case where a computerexecutes the read-out program codes, so that the functions of theembodiments mentioned above are realized, but also the case where the OS(Operating System) or the like which is operating on the computerexecutes a part or all of actual processes and the functions of theembodiments mentioned above are realized by those processes on the basisof instructions of the program codes. Further, naturally, the inventionalso incorporates the case where the program codes read out from thestoring medium are written into a memory provided for a functionexpanding board inserted into the computer or a function expanding unitconnected to the computer, after that, a CPU or the like provided forthe function expanding board or the function expanding unit executes apart or all of actual processes and the functions of the embodimentsmentioned above are realized by those processes on the basis ofinstructions of the program codes.

As described above, according to the first aspect of the invention, whenthe protocol converting process is executed, in the case where thedevice corresponding to a plurality of protocols exists mixedly amongother devices, if the device searches the network, the device searchedby the protocol A and the device searched by the protocol B can beproperly recognized in a well coordinated manner.

According to the second aspect of the invention, even when a pluralityof proxy servers are activated, the proxy servers properly arbitrateeach other and properly execute the protocol conversion of the devicesand the management of the devices can be properly made.

1-19. (canceled)
 20. A control apparatus for executing a protocolconverting process in a network system in which a plurality of kinds ofprotocols exist mixedly, comprising: searching means for issuing asearching request for searching for another protocol convertingapparatus for executing a predetermined protocol process on a networkonto said network and executing a searching process upon activation;recognizing means for, when said another protocol converting apparatusis searched on the network by said searching means, recognizing whethersaid searched protocol converting apparatus can execute the protocolconverting process or said searched protocol converting apparatus hasexecuted the protocol converting process; and activating means for, whenit is recognized by said recognizing means that said searched protocolconverting apparatus cannot execute the protocol converting process ordoes not execute the protocol converting process, activating theprotocol converting process, wherein said searching means and saidactivating means are executed upon activation of said control apparatus.21. An apparatus according to claim 20, wherein whether or not saidsearched protocol converting apparatus can execute the protocolconverting process is recognized by said recognizing means on the basisof the number of protocol converting processes which can be processed bysaid protocol converting apparatus.
 22. An apparatus according to claim20, wherein when it is recognized by said recognizing means that saidsearched protocol converting apparatus can execute the protocolconverting process, an operating mode is switched to a sleep mode. 23.An apparatus according to claim 20, further comprising: managing meansfor managing devices as targets of the protocol converting process; anddiscriminating means for, when it is recognized by said recognizingmeans that said searched protocol converting apparatus cannot executethe protocol converting process, discriminating whether or not thenumber of devices as protocol processing targets which are managed bysaid managing means exceeds a preset maximum number, and wherein when itis determined by said discriminating means that the number of devices asprotocol processing targets which are managed by said managing meansdoes not exceed the preset maximum number, said activating meansactivates said protocol converting process.
 24. An apparatus accordingto claim 23, wherein when it is determined by said discriminating meansthat the number of devices as protocol processing targets which aremanaged by said managing means exceeds the preset maximum number, apacket showing a switch to a sleep mode is multicasted to the networkdevices.
 25. A control method carried out in a control apparatus forexecuting a protocol converting process in a network system in which aplurality of kinds of protocols exist mixedly, comprising: a searchingstep of issuing a searching request for searching for another protocolconverting apparatus for executing a predetermined protocol process on anetwork onto said network and executing a searching process uponactivation; a recognizing step of, when said another protocol convertingapparatus is searched on the network by said searching step, recognizingwhether said searched protocol converting apparatus can execute theprotocol converting process or said searched protocol convertingapparatus has executed the protocol converting process; and anactivating step of, when it is recognized in said recognizing step thatsaid searched protocol converting apparatus cannot execute the protocolconverting process or does not execute the protocol converting process,activating the protocol converting process, converting process, whereinsaid searching step and said activating step are executed uponactivation of the control apparatus.
 26. A method according to claim 25,wherein whether or not said searched protocol converting apparatus canexecute the protocol converting process is recognized in saidrecognizing step on the basis of the number of protocol convertingprocesses which can be processed by said protocol converting apparatus.27. A method according to claim 25, wherein when it is recognized insaid recognizing step that said searched protocol converting apparatuscan execute the protocol converting process, an operating mode isswitched to a sleep mode.
 28. A method according to claim 25, furthercomprising: a managing step of managing devices as targets of theprotocol converting process; and a discriminating step of, when it isrecognized in said recognizing step that said searched protocolconverting apparatus cannot execute the protocol converting process,discriminating whether or not the number of devices as protocolprocessing targets which are managed in said managing step exceeds apreset maximum number, and wherein when it is determined in saiddiscriminating step that the number of devices as protocol processingtargets which are managed in said managing step does not exceed thepreset maximum number, said protocol converting process is activated insaid activating means.
 29. A method according to claim 28, wherein whenit is determined in said discriminating step that the number of devicesas protocol processing targets which are managed in said managing stepexceeds the preset maximum number, a packet showing a switch to a sleepmode is multicasted to the network devices.
 30. A storing medium whichstores a control program in a control method of executing a protocolconverting process in a network system in which a plurality of kinds ofprotocols exist mixedly, wherein said control program allows a computerto execute: a searching step of issuing a searching request forsearching for another protocol converting apparatus for executing apredetermined protocol process on a network onto said network andexecuting a searching process upon activation; a recognizing step of,when said another protocol converting apparatus is searched on thenetwork by said searching step, recognizing whether said searchedprotocol converting apparatus can execute the protocol convertingprocess or said searched protocol converting apparatus has executed theprotocol converting process; and an activating step of, when it isrecognized in said recognizing step that said searched protocolconverting apparatus cannot execute the protocol converting process ordoes not execute the protocol converting process, activating theprotocol converting process, wherein said searching step and saidactivating step are executed upon activation of the computer.
 31. Acontrol method of making protocol conversion control to devices using aplurality of protocols as targets, comprising: a searching step ofsearching for the device using a first protocol; a converting step ofconverting a second protocol so as to make the devices communicate inaccordance with said first protocol; a recognizing step of recognizingwhether or not the device searched in said searching step supports saidfirst protocol; and a control step of controlling said converting stepso as not to execute the protocol conversion into said first protocolwith respect to the device recognized in said recognizing step that thedevice searched in said searching step supports said first protocol. 32.A method according to claim 31, further comprising: an obtaining step ofobtaining a searching request for searching for the device; a managingstep of managing by using a table for managing a list of the devices asprotocol converting targets; and a recognizing step of recognizingwhether or not the device searched by said searching request obtained insaid obtaining step has been registered in the table which is managed insaid managing step, and wherein when it is recognized in saidrecognizing step that said device has been registered in the table whichis managed in said managing step, it is recognized in said recognizingstep that said device supports said first protocol.
 33. A controlapparatus for making a protocol converting control with respect todevices, as targets, using a plurality of protocols, comprising:searching means for searching for the device using a first protocol;converting means for converting a second protocol so as to make thedevice communicate in accordance with said first protocol; recognizingmeans for recognizing whether or not the device searched by saidsearching means supports said first protocol; and control means forcontrolling said converting means so as not to execute the protocolconversion into the first protocol with respect to the device recognizedby said recognizing means that the device searched by said searchingmeans supports said first protocol.
 34. An apparatus according to claim33, further comprising: obtaining means for obtaining a searchingrequest for searching for the device; managing means for managing byusing a table for managing a list of the devices as protocol convertingtargets; and recognizing means for recognizing whether or not the devicesearched by said searching request obtained by said obtaining means hasbeen registered in the table which is managed by said managing means,and wherein when it is recognized by said recognizing means that saiddevice has been registered in the table which is managed by saidmanaging means, it is recognized by said recognizing means that saiddevice supports said first protocol.
 35. A control program for allowinga computer to execute a process for making a protocol conversion controlwith respect to devices using a plurality of protocols as targets,wherein said control program allows the computer to execute: a searchingstep of searching for the device using a first protocol; a convertingstep of converting a second protocol so as to make the devicescommunicate in accordance with said first protocol; a recognizing stepof recognizing whether or not the device searched in said searching stepsupports said first protocol; and a control step of controlling saidconverting step so as not to execute the protocol conversion into saidfirst protocol with respect to the device recognized in said recognizingstep that the device searched in said searching step supports said firstprotocol.
 36. A control apparatus for executing a protocol convertingprocess in a network system in which a plurality of kinds of protocolsexist mixedly, comprising: searching means for issuing to a network asearching request for searching for another protocol convertingapparatus for executing a predetermined protocol process on the network,and searching for said another protocol converting apparatus uponactivation; and activating means which operates in such a manner thatwhen said another protocol converting apparatus is searched on thenetwork by said searching means, the protocol converting process is notnewly activated and when said another protocol converting apparatus isnot searched on the network by said searching means, the protocolconverting process is activated, wherein said searching means and saidactivating means are executed upon activation of said control apparatus.37. A control method carried out in a control apparatus for executing aprotocol converting process in a network system in which a plurality ofkinds of protocols exist mixedly, comprising: a searching step ofissuing to a network a searching request for searching for anotherprotocol converting apparatus for executing a predetermined protocolprocess on the network, and searching for said another protocolconverting apparatus upon activation; and an activating step whichoperates in such a manner that when said another protocol convertingapparatus is searched on the network in said searching step, theprotocol converting process is not newly activated and when said anotherprotocol converting apparatus is not searched on the network in saidsearching step, the protocol converting process is activated, whereinsaid searching step and said activating step are executed uponactivation of the control apparatus.
 38. A storing medium which stores aprogram for allowing a computer (CPU) to execute a control method ofexecuting a protocol converting process in a network system in which aplurality of kinds of protocols exist mixedly, wherein said programallows the computer to execute: a searching step of issuing to a networka searching request for searching for another protocol convertingapparatus for executing a predetermined protocol process on the network,and searching said another protocol converting apparatus uponactivation; and an activating step which operates in such a manner thatwhen said another protocol converting apparatus is searched on thenetwork in said searching step, the protocol converting process is notnewly activated and when said another protocol converting apparatus isnot searched on the network in said searching step, the protocolconverting process is activated, wherein said searching step and saidactivating step are executed upon activation of the computer.